package containerlogistik.implementation;

import containerlogistik.interfaces.*;
import java.util.Collection;
import java.util.Set;

public abstract class ContainerShipImpl extends AbstractShip implements ContainerShip {

    Stowage<Container> containerStowage;

    @Override
    public Mass emptyMass() {
        return this.emptyMass();
    }

    @Override
    public Mass maxMass() {
        return this.maxMass();
    }

    @Override
    public boolean isEmpty() {
        return this.containerStowage.isEmpty();
    }

    @Override
    public boolean isFull() {
        return this.containerStowage.isFull();
    }

    @Override
    public void load(int bayNo, int rowNo, Container elem) {
        this.containerStowage.load(bayNo, rowNo, elem);
    }

    @Override
    public void load(Container elem) {
        this.containerStowage.load(elem);
    }

    @Override
    public void loadAll(Collection<? extends Container> coll) {
        this.containerStowage.loadAll(coll);
    }

    @Override
    public boolean tierIsEmpty(int bay, int row) {
        return this.containerStowage.tierIsEmpty(bay, row);
    }

    @Override
    public boolean tierIsFull(int bay, int row) {
        return this.containerStowage.tierIsFull(bay, row);
    }

    @Override
    public boolean contains(Object elem) {
        return this.containerStowage.contains(elem);
    }

    @Override
    public boolean containsAll(Collection<?> coll) {
        return this.containerStowage.containsAll(coll);
    }

    @Override
    public Container get(StowageLocation loc) {
        return this.containerStowage.get(loc);
    }

    @Override
    public Set<Container> getAll() {
        return this.containerStowage.getAll();
    }

    @Override
    public StowageLocation locationOf(Container elem) {
        return this.containerStowage.locationOf(elem);
    }
}
